home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-06-13 | 4.4 KB | 149 lines | [TEXT/MPS ] |
- ; ===========================================
- ; Copyright Paul Baxter
- ; ===========================================
- ;
- ; Use:
- ; Note: You may use glue instead of the macros by omitting the underscore.
- ; If you use the glue, SCSIPatchAvail will be called for you. Otherwise
- ; if any macro is called without the patch installed it will cause a crash.
- ;
- ; To see if patch is installed.
- ; This is a glue routine and must be linked in. This only needs to be called once.
- ; CLR.W -(SP)
- ; JSR SCSIPatchAvail
- ; MOVE.W (SP)+,D0 ; D0.W is the result non zero = installed
- ;
- ; To start recording SCSI calls
- ; CLR.W -(SP)
- ; _SCSIStartRecord
- ; MOVE.W (SP)+,D0 ; D0.W is the result 0 = noErr
- ;
- ; To stop recording SCSI calls
- ; CLR.W -(SP)
- ; _SCSIStopRecord
- ; MOVE.W (SP)+,D0 ; D0.W is the result 0 = noErr
- ;
- ; To reset the buffer pointer
- ; CLR.W -(SP)
- ; _SCSIInitRecord
- ; MOVE.W (SP)+,D0 ; D0.W is the result 0 = noErr
- ;
- ; To get the buffer pointer and count
- ; CLR.W -(SP)
- ; PEA buffer(A6) ; address you want the pointer stored
- ; PEA count(A6) ; address you want the count stored
- ; _SCSISendRecord
- ; MOVE.W (SP)+,D0 ; D0.W is the result 0 = noErr
- ;
- ; ===========================================
- ; buffer format
- ; ===========================================
- ; scsiReset command
- ; 0000 0000
- ; | |__Result Code Word
- ; |_______Routine Selector Word
- ;
- ; scsiGet command
- ; 0001 0000
- ; | |__Result Code Word
- ; |_______Routine Selector Word
- ;
- ; scsiSelect, scsiSelAtn commands
- ; (scsiSelect = 0002) (scsiSelAtn = 000B)
- ; 0002 0000 0000
- ; | | |__Result Code Word
- ; | |_______SCSI ID
- ; |____________Routine Selector Word
- ;
- ; scsiCmd command
- ; 0003 0006 0800 1C32 0100 0000
- ; | | | | | |__Result Code Word
- ; | | |____|____|_______Command bytes
- ; | |______________________Length of Command
- ; |___________________________Routine Selector Word
- ;
- ; scsiComplete command
- ; 0004 00C1 CE20 00D2 4130 0000 2E30 0000 0000 0000
- ; | | | | | | | | | |__Result Code Word
- ; | | | | | | | | |_______Message Word Result
- ; | | | | | | | |____________Status Word Result
- ; | | | | | |____|_________________Completetion Time
- ; | | | |____|___________________________Message Word Pointer
- ; | |____|_____________________________________Status Word Pointer
- ; |_______________________________________________Routine Selector Word
- ;
- ; scsiRead, scsiWrite, scsiRBlind, scsiWBlind commands
- ; (scsiRead = 5) (scsiWrite = 0006) (scsiRBlind = 0008) (scsiWBlind = 0009)
- ; 0005 0001 001E 56D2 0000 0001 0007 0000 0000 0000 0000 0000
- ; | | | | | | | | | | | |__Result Code Word
- ; | |____|____|____|____|____|____|____|____|____|_______SCSIInstrs (TIB) up to scStop
- ; |_________________________________________________________Routine Selector Word
- ;
- ; scsiStat command
- ; 000A 0000
- ; | |__Status Word
- ; |_______Routine Selector Word
- ;
- ; scsiMsgIn command
- ; 000C 001E 2840 0001 0000
- ; | | | | |__Result Code Word
- ; | | | |_______Message Word
- ; | |____|____________Message Word Pointer
- ; |______________________Routine Selector Word
- ;
- ; scsiMsgOut command
- ; 000D 0001 0000
- ; | | |__Result Code Word
- ; | |_______Message Word
- ; |____________Routine Selector Word
- ;
- ; data_opcode command
- ; 0204 0008 0000 0000 0000 0000
- ; | | | | | |
- ; | | |____|____|____|_Data
- ; | |_____________________Data Count
- ; |__________________________Routine Selector Word
- ;
- ; ===========================================
- ; routine selectors
- ; ===========================================
- start_rec EQU 512
- stop_rec EQU 513
- clear_rec EQU 514
- send_rec EQU 515
-
- data_opcode EQU 516
-
- MACRO
- _SCSIStartRecord
- MOVE #start_rec,-(SP)
- _SCSIDispatch
- ENDM
-
- MACRO
- _SCSIStopRecord
- MOVE #stop_rec,-(SP)
- _SCSIDispatch
- ENDM
-
- MACRO
- _SCSIInitRecord
- MOVE #clear_rec,-(SP)
- _SCSIDispatch
- ENDM
-
- MACRO
- _SCSISendRecord
- MOVE #send_rec,-(SP)
- _SCSIDispatch
- ENDM
-
- Import SCSIStartRecord,SCSIStopRecord,SCSIInitRecord
- Import SCSISendRecord,SCSIPatchAvail
-
- ;FUNCTION SCSIStopRecord: OSErr
- ;FUNCTION SCSIStopRecord: OSErr
- ;FUNCTION SCSIInitRecord: OSErr
- ;FUNCTION SCSISendRecord(VAR buffer: Ptr, VAR count:LONGINT): integer
- ;FUNCTION SCSIPatchAvail: integer
-